Card reader

ABSTRACT

An apparatus for reading a digital data word stored on a manually inserted card. The card includes a digital data word comprising a plurality of encoded characters stored on the card in the form of a two dimensional data matrix. 
     The card reader includes a linear array of row data detection elements and an array of one or more rows of column data detection elements, each row being disposed perpendicular to the array of row data detection elements. As a card is inserted into the reader, the column data detection elements detect and store the data bits for each of the characters from the rows of the data matrix as those rows pass the column data detection element array. A circuit means coupled to the row and column data detection arrays identifies the detected column data with the corresponding rows of the data matrix which are currently overlying the column data detection array. Following full insertion of the card into the reader, the complete data matrix may be read out from the card reader memory.

BACKGROUND OF THE INVENTION

This invention relates in general to semi-automated data acquisitionsystems and more particularly, to systems for reading digital datastored on cards.

Numerous forms of cards having digital data stored thereon are known inthe art. Examples of such cards are credit cards having a customeraccount number, Hollerith encoded tab cards, and employee badges, whichmay typically include employee data such as employee number, shiftnumber, and pay grade. The dimensions and data format of such badges arepresently being standardized by the Credit Card Standard Committee ofthe American Standards Institute.

The digital data may be stored on such badges or cards in one of manyforms. For example, raised areas on the badge or card may be used todenote a data bit (for use with mechanical reading systems employingstatic contacts). Such mechanical systems are, however, relativelyunreliable in that the contact elements are subject to physical damagefrom repeated use. In other forms, the data words may be encoded bypositioning an optically reflective area on the card in an appropriatefield to represent a data bit (for use with optical reading systemsemploying light source and sensor configurations). Alternatively, a holemay be punched in the card in an appropriate field to represent a databit (for use with optical reading systems employing a light source onone side of the card and a sensor element on the other side). Stillother forms might include magnetically encoded data bits (for use withmagnetic reading systems).

In each of these cases, the data stored by the card may include amultiple character data word in the form of a rectangular M row × Ncolumn data matrix with each row or column comprising an encodedcharacter of the stored word. For example, a 10 digit decimal number maybe encoded by a 10 × 10 data matrix wherein the binary words formed bythe 10 bits of the columns are representative of the correspondinglypositioned digits or characters of the data word.

Generally, readers for such cards include an array of data detectionelements with the individual elements disposed at locationscorresponding to the bit locations of the data matrix on the card to beread. When a card is inserted in the card reader and maintained at afixed position with the data matrix aligned with the detection elementarray, a reading operation may take place. Thus, in such systems, thedetection element array includes a data detection element for eachpotential bit in the data matrix, e.g. where the data matrix includesten characters, each having ten bits, 100 detection elements arerequired to detect the data word. In addition, the card reader mustinclude means for maintaining the card in a position aligning the datamatrix with the detection element array for a duration sufficient forreading.

A card reader which provides a detection array of substantially fewerdetection elements than there are bit positions in the data matrix, aswell as means for determining the orientation of the card is describedin the U.S. Pat. application entitled "Card Reader", Ser. No. 455,929,filed Mar. 28, 1974, by Edward Sonier and assigned to the assignee ofthe present invention.

SUMMARY OF THE INVENTION

It is an object of this invention to provide a card reader in whichreading of a card may be accomplished during the period of insertion ofa card into the reader.

Another object is to provide a system for reading digital data stored oncards in a binary data matrix in which the card reader includes an arrayof column detection elements for sequentially reading predeterminedgroups of rows of the data matrix, and includes only a further lineararray of row or group detection elements for identifying the groups ofrows of the data matrix currently being read.

In accordance with the present invention, an apparatus is provided forreading a digital data word stored on a card having information storedon the card in the form of a two dimensional data matrix. Each column orrow of the data matrix may include a binary data word representative ofone of the encoded characters.

The card reader apparatus includes a guide means for controlling theorientation of a card inserted therein. In addition, the card readerincludes an array of one or more rows of column data detection elementshaving its rows perpendicular to the direction of insertion of the card,with the number and spacing of the column elements in each rowcorresponding to the number and spacing of the columns in the datamatrix of a card. The array of column elements is disposed so that theindividual column elements are aligned with the corresponding columns ofthe data matrix when a card is inserted in the card reader with apredetermined orientation. The card reader also includes a linear arrayof row or group data detection elements extending in the direction ofinsertion of the card, with the number and spacing of these elementsbeing related to the number and spacing of the rows in the data matrixof a card. Each row or group data detection element is uniquelyassociated with a predetermined group of rows of the data matrix. Theproduct of the number of elements in the linear row or group array withthe number of rows in the column array is equal to or greater than thenumber of rows of the data matrix. The spacing between the rows ofdetection elements in the column array is equal to the spacing betweenthe rows of the data matrix multiplied by the ratio of the number ofrows in the data matrix to the number of rows in the column array. Thearray of row or group elements is disposed so that as a card is insertedin the reader, the leading edge of the card is detected by theindividual element associated with the group or rows of the data matrixcurrently aligned with the column data detection element array.

As a card is inserted into the card reader, the column data is detectedand stored for each group of rows of the data matrix as the rows overliethe column data detection element array. Following full insertion of acard into the reader, the complete data matrix may be read out from thecard reader memory.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention itself will be more fully understood from the followingdescription, when read together with the accompanying drawings in which:

FIG. 1 shows a card reading system in accordance with the presentinvention;

FIG. 2 shows an exemplary card for use with the system of FIG. 1;

FIG. 3 shows a source/sensor arrangement for reading the card of FIG. 2;

FIG. 4 shows in block diagram form, card reader control logic for thearrangement of FIG. 3;

FIG. 5 shows an alternative form of an exemplary card for use with thesystem of FIG. 1;

FIG. 6 shows a source/sensor arrangement for reading the card of FIG. 5;and

FIG. 7 shows in block diagram form, card reader control logic for thearrangement of FIG. 6.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a card reader 10, together with a card-to-be-read 12 and anexternal controller 14 which is connected to reader 10 by signal lines16 and 18. The card reader 10 of the present embodiment is an opticalsystem for use with cards having a data word stored on it in the form oftransparent areas such as punched holes. The encoded information isdetected by a plurality of data detection elements, each including anoptical source and sensor. Alternative embodiments may accommodate cardshaving data in other forms e.g. raised areas on the card (usingmechanical contact elements for data detection), reflective areas on thecard (using optical sources and sensors on a first side of the card fordata detection), or magnetically encoded regions on a magnetic medium onthe card (using magnetic sensors for data detection).

FIG. 2 shows a card 10 suitable for use with the present embodiment.Card 10 is an American Standards Institute Type 5 card which may also beused as a Data Collection Badge for IBM 357 and 1030 Badge Readers. Inthe top view of the card shown in FIG. 2, the data is encoded in 10 rowsand 10 columns of data positions, each characterized by one or the otherof two states. The data are stored in a 10 × 10 data matrix 20, witheach column being representative of a character word. In FIG. 2, thedata matrix 20 is shown with rectangles representing data bit locations.The shaded rectangles are representative of punched holes and theremaining rectangles are representative of unpunched holes. Eachcharacter word includes a single hole punched in one of the rows withall other rows having no hole punched. Each column may represent one ofthe 10 digits (0-9) with the row of the punched hole determining thedigit value of the character word. Thus, the card in FIG. 2 has encodedon it the number 0123456789.

The card 10 also includes a pawl hole which is offset laterally from thecenter line of the card in the embodiment of FIG. 2. The pawl hole 22 onthe card 12 is used in prior art card readers in conjunction withmechanical means to restrain the badge in the reading position until theread operation is accomplished. However, systems configured inaccordance with the present invention require no such restraining sincethe reading operation is accomplished as the badge is inserted in thecard reader, and thus is complete by the time the badge is fullyinserted in the reader 10. As described below, this feature permits adetection operation to determine whether a card has been inserted in theproper orientation for a valid reading operation.

FIG. 3 shows the top view of an optical source/sensor configuration foruse with the card of FIG. 2. The card reader 10 includes identicalarrays of light sources and sensors so that each sensor is aligned withan associated light source. It will be understood that thecard-to-be-read is inserted into the card reader 10 in the directionindicated by arrow 26 in FIGS. 2 and 3, and between the source arraysand the sensor arrays. The card reader 10 includes guide means 28 and 29to ensure that the card 10 may only be moved in the direction ofinsertion and may not be moved transverse to the direction. Of course,the card may be removed by a motion in the opposite direction to thatmotion in the insertion operation.

The source/sensor configuration includes a linear array of column datadetection elements 32 comprising a plurality of optical source/sensorpairs, wherein each source/sensor pair is positioned to correspond to acolumn location of the data matrix on the card 12. Accordingly, for amatrix with N columns, there are N detection elements 32. Thesource/sensor configuration further includes a linear array of row datadetection elements 34 comprising a source/sensor pair associated witheach of the rows of the data matrix 20 of card 12, (again, if there areM rows, there are M source/sensor pairs). Each sensor of array 34 ispositioned so that it senses the leading edge of a card 12 when theassociated row of data matrix 20 is aligned with the source/sensor pairsof the column data detection array 32. The elements of row datadetection array 34 are further positioned so that the pawl hole 22 isaligned with and passes over that array as the card 20 is inserted intothe card reader 10.

In addition to the arrays 32 and 34, a "no badge" source/sensor pair 38is arranged to provide a signal whenever a badge is inserted into reader10. It will be understood that the no badge source/sensor pair 38 ispositioned appropriately so that false readings may not occur due to theother data holes punched in the card 12.

In operation, as a card or badge 12 is manually inserted into reader 10from the direction 26, a "badge present" signal is generated by thesource/sensor pair 38 and as the badge is further inserted into reader10, the light from row 9 source to the associated sensor is interceptedby the leading edge of the inserted card. At this point, the row 9 ofthe data matrix 20 on the card 12 is aligned with the column datadetection array 32. The sensor elements of the column data detectionarray 32 are successively sampled to detect and store signals indicativeof the presence or absence of holes (representative of binary "ones" or"zeros") in the corresponding bit positions in the row 9 of data matrix20. As the card continues to be inserted further into reader 10, thelight passing from the row 8 source to its sensor in array 34 isintercepted by the leading edge of card 12 at the point where row 8 ofthe data matrix is aligned with column sensor array 32. The sensorelements of the column data detection array 32 are again successivelysampled to detect and store signals indicative of the presence orabsence of holes in corresponding bit positions in the row 8 of the wordmatrix 20. This operation continues for the successive rows of datamatrix 20 as the card 12 is inserted further into reader 10. In thismanner, the rows of the data matrix 20 of card 12 are successively readduring the insertion operation of the card into reader 10 so that uponfull insertion of the card 12, the entire data word stored on card 12had been read from the data matrix 20 and stored in reader 10. Theexternal controller 14 may interrogate reader 10 (via lines 16 and 18)to acquire the data word read from card 12 for subsequent operations onthis data word. It will be understood that in an alternative embodiment,the card reader 10 reads the data word on card 12 in the same mannerdescribed above during the extraction of the card from the card reader10 and a parity check may be performed to eliminate potential detectionerrors in the detection operations.

FIG. 4 shows an exemplary configuration for the card reader controllogic for reading the card 12. The row 0-9 inputs lines of FIG. 4 areconnected to the corresponding row data detection sensors in FIG. 3, thecolumn 1-10 lines are connected to the corresponding column datadetection sensors in FIG. 3, and the NO BADGE line is connected to the"no badge" sensor in FIG. 3. In this embodiment a hole in an insertedcard which is between one of the above-mentioned sensors and itsassociated light source or the absence of a card (permitting light topass between the source and sensor) places a binary one on theassociated line. When no light passes between a source and itsassociated sensor, a binary zero is placed on the associated line.

The card reader control logic of FIG. 4 is responsive to a controller 14which is not a part of the present invention. This controller providesthe card 10 with a clock signal on line 41, a preset command signal online 42 and a transmit command signal on line 43. The card reader 10provides the controller 14 with a four bit data word in lines 47a-d andcontrol signals on lines 49a-c. Lines 41, 42, 43 and 47a-d, 49a-c, arecollectively represented in FIG. 1 by lines 18 and 16, respectively.

The card reader may have an alternative embodiment having no externalcontroller 14, but wherein a manual control is provided, which producesthe preset command, transit command and clock signals for reader 10 andin which reader 10 includes a read-out means for displaying the datasignal and control signals on lines 47a-d and 49a-c, respectively.

The card reader 10 includes, in addition to the source/sensor pairsdescribed above in conjunction with FIG. 3, a 4 × 10 bit random accessmemory 52, a row multiplexer 54, down-counter 56, column multiplexer 58,up-counter 60, scan control 62 and status signal generator 64.

As shown in FIG. 4, the down-counter 56 provides signals representativeof its count state (Q1Q2Q4Q8) to the line select inputs of row detectmultiplexer 54 and to the data inputs of the memory 52. The count stateof down-counter 56 is representative of the number of the current row ofthe data matrix 20 which is aligned with the array of column datadetection elements 32.

The up-counter 60 provides signals representative of its count state(S1S2S4S8) to the line select inputs of multiplexer 58 and to theaddress inputs of memory 52. The count state of up-counter 60 isrepresentative of the number of the currently sampled column datadetection element of array 32 during a scan of a row of data matrix 20.Multiplexers 54 and 58 provide row detect signals (on line 54a) andcolumn detect signals (on line 58a) respectively, to the scan control62.

Status signal generator 64 includes three registers. The first registerprovides a binary 1 signal on line 49a when a card reading operation iscomplete, denoting a DATA READY condition. The second register providesa binary 1 control signal on line 49b, denoting a WRONG SIDE condition,when scan control 62 has determined that the card has been inserted inreader 10 with the "wrong side" up or "wrong end first". The thirdregister provides a binary 1 control signal on line 49c, denoting aPREPULLED condition, when control 62 indicates that the card being readhas been removed from reader 10 prior to full insertion of the card.

In operation, the external controller 14 may activate card reader 10 forreading a card by applying a clock signal on line 41 and a presetcommand signal on line 42. In response to the preset command signal,scan control 62 generates control signals which set the down-counter 56to the count 9 state, set the up-counter 60 to the counter 0 state,reset the status signal registers in generator 64 to place binary 0signals on lines 49a-c and load the memory 52 (via the RESET line) to apredetermined state (e.g. all binary "1's").

The card reader 10 remains in this NO BADGE state until a card 12 isinserted. In response to a card 12 being inserted between the no badgesource and sensor pair 38, the "no badge" sensor 38 provides a controlsignal on the NO BADGE line input to scan control 62. This controlsignal, generated when a card is present, maintains the card reader 10in its operative state until the card is removed (whereupon reader 10returns to the NO BADGE state). As the card is inserted further intoreader 10, the leading edge of the card next passes the row 9source/sensor of the row data detection array 34. In response, the Row 9line provides a binary one signal to multiplexer 54. Since thedown-counter 56 is in the count 9 state (as indicated above), the binaryone on the Row 9 input line to multiplexer 54 is transferred to the rowdetect output line 54a and applied to scan control 62. This conditionindicates to scan control 62 that the row 9 of the data matrix 20 on thecard 12 is aligned with the scan column data detection array 32. At thistime, a scan cycle is initiated by scan control 62.

In the scan cycle, each element in the column data detection array 32 issequentially read out to determine which information positions in eachrow have a binary 1 value. This is accomplished by incrementing a moduloten counter 60 to provide that the ten 4 bit locations in memory 52 aresequentially addressed as the multiplexer 58 sequentially connects eachof the elements in column data detection array 32 via the column detectline to the scan control 62. In response to the detection of a binary 1value on the column detect line, this scan control 62 applies a writesignal to the write input of the memory 52, thereby causing the storageof a signal representative of the count state of down-counter 56(Q1Q2Q4Q8) at the correctly addressed location of memory 52.

As noted above, the up-counter 60 is initially set to the count zerostate and thus, the data bit on the Column 1 input line of multiplexer58 is first transferred via the column detect line 58a to scan control62. If the signal applied by the column detect line 58a to control 62 isa binary one (indicating that column one includes a hole punched at thecurrent row), then scan control 62 applies a write signal to memory 52and the state of counter 56 (Q1Q2Q4Q8) is stored at the addressedlocation corresponding to the state of counter 60 (S1S2S4S8). Sincethere can be a maximum of one hole punched per column in the card 12 inthe presently described embodiment, the memory 52 stores a four bitsignal representative of the state of counter 60 as the column 1character. (It will be understood that other embodiments may utilizedifferent coding in the data matrix wherein more than one hole percolumn may be present, or, alternatively, where the characters areencoded in the row bits, with each row representing a differentcharacter).

Following the write operation, (or if no write operation is performedbecause the column 1 line does not indicate a hole in the bit positionof the current row), the counter 60 is incremented by control 62 and thecolumn 2 signal is then applied via the column detect line 58a tocontrol 62 and the above process is repeated for writing the words inmemory 52 (or not writing when no hole is present). This cycle isrepetitively performed for each of the remaining 8 column lines tomultiplexer 58. Following the scanning of the column 10 (or last) inputline to multiplexer 58, the down-counter 56 is decremented by one unitto the count 8 state and the up-counter 60 is reset to the count zerostate.

In response to the setting of down-counter 56 to the count 8 state, thedata from the Row 8 sensor line is applied by the row detect multiplexer54 and the row detect line 54a to the scan control 62. As the card 12travels farther into the reader 10, the leading edge will interceptlight passing between the row 8 source and sensor pair and, accordingly,a binary one signal is applied via the Row 8 line, multiplexer 54, andline 54a to scan control 62. In response, another scan cycle isinitiated, and the above described operation is repeated. As the card 12travels still farther into reader 12, the successive row source/sensorpairs are intercepted by the leading edge of the card 12 and the entirescan process is repetitively performed for each row. Following thetermination of the Row 0 scan cycle, the data ready register of thestatus generator 64 is set to provide a binary 1 control signal on line49a, indicating that the card 12 has been fully read.

The inserted card 12 is read to completion unless either of thefollowing two error conditions are encountered:

1. the card was inserted with the wrong side up or the wrong end first(so that the data matrix 20 is not aligned with the column array 32), or

2. the card was removed prior to scanning, detecting and storing datafrom the last row, Row 0.

The first error condition, denoted WRONG SIDE condition, is detected bythe wrong side detector 72. To do so, detector 72 determines if, duringthe time when down-counter 56 is in the count 8 state, both Row 8 andRow 9 lines indicate that the card 12 is blocking the light from thesource to both corresponding sensors. If so, then the card is eitherupside down, or inserted with its wrong end first since the pawl hole 22would normally provide a binary 0 on the row 9 line at this point intime during the count 8 state of counter 56. In response thereto,detector 72 applies a control signal to scan control 62 which in turn,sets the corresponding register in status signal generator 64, andapplies an appropriate control signal on line 49b.

The second error condition, denoted PREPULLED condition, is determinedby detecting when the NO BADGE line returns to its initial state(indicating that card 12 has been removed from reader 10) prior to thedetection of and scanning of row 0. This detection operation is providedby scan control 62 and in response thereto, the corresponding registerin status signal generator 64 is set so that an appropriate controlsignal is provided on line 49c. It will be understood that the card mustbe removed almost completely from reader 10 before this PREPULLED errorcondition can occur. In such case, the reinsertion of the badge wouldcause the complete re-reading of the full data matrix 20. As a result ofthis latter error condition feature, the card reader 10 may accommodatea condition where the badge is "teased" into reader 10 withoutdetrimental effects on the reading of the data due to the fact that onceany row is detected and scanned, the presence or absence of the rowsignal has no effect on subsequent row detection.

It will be understood that if a scan operation is interrupted by thepartial prepulling of a card without complete withdrawal of the card,that scan operation may be re-initiated upon the insertion of the cardto the appropriate position to generate a row detect signal.

The time required to scan any row is dependent upon the frequency ofclock signal provided by the external control 14, or in otherembodiments, by the internally generated clock signal. For the presentlydescribed embodiment, at a clock rate as low as 1 KHz, the scan time forone row is on the order of 20 milliseconds, which is a fraction of thetime that the holes in that row are positioned over the columns sensors.

Once the reading of the card has been completed, and the data readysignal is applied on line 49a, the data stored in memory 52 may betransferred via lines 47a-d to the external controller 14 or to aseparate read-out unit in response to a transmit command applied on line43. The read-out rate of the succession of characters on lines 47a-d isdetermined by the clock signal applied by the external controller sincethe scan control 62 increments up-counter 60 to provide the successiveaddressing operations within memory 52.

Accordingly, the above-described exemplary configuration provides abadge reader for American Standards Institute type 5 badges wherein only21 source/sensor elements are required to read a 10 × 10 data wordmatrix (compared with at least 100 required by badge readers of theprior art). In addition, the card reader described above employs nomoving parts since the badge motion is provided by the operator whoinserts the badge, and since no pawl retention is required. It will befurther understood that the above-described system thereby becomesvirtually independent of insertion speed.

In an alternative embodiment, a card reader may be configured to read an80 row (12 bits per row) Hollerith encoded tab card. Such an embodimentmay also be configured generally as shown in FIG. 1 with a externalcontrolled 14 interconnected with a card reader 10 via control lines 16and 18. In the following description, the Hollerith card reader isdenoted as card reader 110 (as distinguished from the card reader 10described above in conjunction with FIGS. 2-4) for reading a data card112 having the format shown in FIG. 5. Card 112 includes a data matrix120 having an 80 row, 12 column field for data bit locations. Each rowmay contain a Hollerith encoded data word consisting of punched holes atthe appropriate locations. The separation between rows is uniform and isreferred to in FIG. 5 by "D". Row 1 is shown to be a distance denoted"X" from a fist edge of card 112. A corner cut portion 122 is locatednear the row 1, column 12 data position. For the card reader 110, thedirection of insertion of card 112 is indicated by the arrow 126. Itwill be understood that the row and column notation and orientation ofthe data bit locations of the card shown in FIG. 5 is merely exemplaryand that, for example, the data matrix may alternatively be defined ashaving 80 columns with 12 rows, and have the data bit locations orientedperpendicular to those shown in FIG. 5.

FIGS. 6 and 7 show the source/sensor configuration and control logic,respectively, for the card reader 110. The elements of card reader 110which correspond to similar elements of the card reader 10 are denotedby reference numerals having identical units and tens digits as thecorresponding elements of reader 10.

The card reader 110 may be responsive to a controller 14 which providesa clock signal, a preset command signal and a transmit command signalvia lines 141, 142, and 143, respectively, in the same manner as thecontroller described in conjunction with FIG. 4. Similarly, the cardreader 110 provides the controller 14 with a data signal on line 147 andcontrol signals on line 149A-C. Lines 141-143 and 147, 149A-C, arecollectively represented in FIG. 1 by lines 18 and 16, respectively.Alternatively, the card reader 110 may be embodied with no externalcontroller 14, but wherein an internal clock generator and data displaysystem is utilized.

FIG. 6 shows the top view of an optical source/sensor configuration foruse with the card 112. The card reader 110 includes identical arrays oflight sources and sensors so that each sensor is aligned with anassociated light source. The card-to-be-read is inserted into the cardreader 110 (in the direction indicated by arrow 126 in FIGS. 5 and 6)between the source arrays and the sensor arrays.

The card reader 110 further includes guide means 128 and 129 to ensurethat the card 110 may only be moved in the direction of insertion andmay not be moved transverse to that direction. Of course, the card maybe removed by a motion in the opposite direction to that motion in theinsertion operation.

The source/sensor configuration of FIG. 6 includes four linear arrays ofcolumn data detection elements 132A-D, each having 12 source/sensorpairs with each pair being positioned to correspond to a column locationof the data matrix 120 on the card 112. The source/sensor configurationfurther includes a linear array of group data detection elements 134positioned substantially perpendicular to the column data detectionarrays 132A-D. The group array 134 has 20 source/sensor pairs with eachpair being associated with a predetermined set of four rows of the datamatrix 120 of card 112. Each such set of four rows is designated agroup. Each of the 20 groups includes row M, row M+20, row M+40 and rowM+60, where M is an integer ranging from 1 to 20, and thus, the value Mis an identifier for each group.

The column data detection arrays 132A-D are separated by a distance20×D, i.e. 20 times the separation of adjacent rows of the data matrix120 so that the array 132A is associated with the Mth row, the array132B is associated with the M+20th row, the array 132C is associatedwith the M+40th row, and the array 132D is associated with the M+60throw.

In addition, each of the 20 source/sensor pairs in the group detectorarray 134 is separated from the adjacent element by a distance D and thecenter line of the group 1 source/sensor pair is separated from thecenter line of the column data detector 132A by a distance X.Consequently, each the Mth or Group M source/sensor pair of array 134 ispositioned so that it senses the leading edge of card 112 when theassociated set of four rows of data matrix 120 (i.e. row M, row M+20,row M+40 and row M+60) is aligned with source/sensor pairs of the columndata detection arrays 132A-D. For example, when the edge of card 112first passes over the group 1 detector element, rows 1, 21, 41 and 61are aligned with the detection arrays 132A, 132B, 132C and 132D,respectively. Similarly, when the edge of card 112 passes over the group20 detection element of array 134, rows 20, 40, 60 and 80 are alignedwith the respective ones of arrays 132A-D.

In addition to the arrays 132A-D and 134, a "no card" source/sensor pair138 is arranged to provide a "card present" signal whenever a card isinserted into reader 110 so that the card intercepts the light passingbetween the source and sensor of pair 138.

In operation, as a card 112 is manually inserted into reader 110 fromthe direction 126, the row M+40, column 12 sensor of pair 139 provides.[.aa.]. .Iadd.a .Iaddend.control signal when the leading edge of card112 passes that sensor. At this time, the sensor of pair 138 is sampledto determine if card 112 is intercepting the light passing from thesource of pair 138. If so, the card reader 110 generates a WRONG SIDEsignal indicating that the card 112 has been inserted with the wrongorientation. If the card does not intercept the light passing betweenthe source and sensor of pair 138 at this time (due to the position ofcorner cut portion 122 of card 112), card reader 110 determines that thecard 112 has been inserted with the correct orientation.

Following the determination that the card 112 is correctly oriented, asthe card is further inserted into reader 110 so that the light from thegroup 1 source prevented by the leading edge of the card from reachingthe group 1 sensor (indicating that the rows 1, 21, 41 and 61 arealigned with the column data detection arrays 132A-D), the 12 sensorelements of each of arrays 132A-D are sampled in parallel to detect andstore signals indicative of the presence or absence of holes(representative of binary "1's" and "0's", respectively) in thecorresponding data locations in the rows 1, 21, 41 and 61 of data matrix120. As the card continues to be inserted further into reader 110, thelight passing from the group 2 source to its sensor in array 134 isintercepted by the leading edge of card 112 at the point where the rows2, 22, 42 and 62 are aligned with the column sensor arrays 132A-D. Thesensor elements of the column data detection arrays 132A-D are againsampled in parallel to detect and store signals indicative of thepresence or absence of holes in the corresponding data locations in therows 2, 22, 42 and 62 of data matrix 120. This operation continuessuccessively for groups 3 through 20 of data matrix 120 as the card 112is inserted farther into reader 110. In this manner, the rows of datamatrix 120 of card 112 are successively read-in during the insertion ofthe card 112 into the reader 110 so that upon full insertion, the entiredata matrix 120 stored on card 112 is read and stored in reader 110. Thereader 110 detects when the card has been fully inserted and at suchtime generates a data ready signal indicative of the completion of thedata storage operation.

FIG. 7 shows an exemplary configuration for the Hollerith card readercontrol logic for reading the card 112. The group 1-20 input lines areconnected to the corresponding group data detection sensors in array 134shown in FIG. 6, the row M column 1-12 lines are connected to thecorresponding column data detection sensors in array 132A shown in FIG.6, the row M+20 column 1-12 lines are connected to the correspondingcolumn data detection sensors of array 132B, the row M+40 column 1-12lines are connected to the corresponding column data detection sensorsin array 132C, the row N+60 column 1-12 lines are connected to thecorresponding column data detection sensors of array 132D, and the "nocard" sensor line is connected to the sensor 138. In this embodiment, ahole in an inserted card which is between one of the above-mentionedsensors and its associated light source, or the absence of a card(permitting light to pass between the source and sensor) places a binaryone on the associated line. When no light passes between a source andits associated sensor, a binary 0 is placed on the associated line.

In addition to the source/sensor pairs described above in conjunctionwit FIG. 6, the card reader 110 includes a random access memory 152, agroup detect multiplexer 154, twenty state up-counter 156, a columndetect multiplexer 158, a data decoder 159, a scan control 162, andstatus signal generator 164.

The up-counter 156 provides signals representative of its count state(Q1Q2Q4Q8Q16, which may range from count 1 to count 20) to the lineselect input of group detect multiplexer 154. The count state ofup-counter 156 is representative of the group number of the current setof four rows of data matrix 120 which is aligned with the column datadetection arrays 132A-D. The group detect line from multiplexer 154provides to scan control 162 an input signal which has the same binaryvalue as the group line which is selected by the count state ofup-counter 156.

The scan control 162 provides signals on the M, M+20, M+40 and M+60lines to the line select input of column detect multiplexer 158. Inresponse to a signal applied on one of those lines, the associated oneof the row M, row M+20, row M+40, and row M+60 sets of data input linesis effectively connected by the multiplexer 158 to the data decoder 159via the column 1-12 detect lines. The decoder 159 applies signals to thedata input of memory 152. The data decoder 159 may comprise s pluralityof combinatorial logic gates for encoding the detected word appearing onthe 12 line parallel input to decoder 159. For embodiments where thememory 152 is to store 80, 2 bit words in the same form in which theyare encoded on the Hollerith card, decoder 159 is not used and the 12detect lines from multiplexer 158 are connected directly to the datainputs of memory 152.

The status signal generator 164 is substantially the same as thegenerator 64 described in conjunction with FIG. 4, wherein a generatorcomprises three registers performing similar functions and generatingthe appropriate signals on the DATA READY, WRONG SIDE, PREPULLED lines149A-C.

The scan control 162 also provides input signals to the READ, WRITE, andADDRESS SELECT inputs of memory 152. Further, the sean control 162 maypreset the contents of memory 152 to a predetermined state via anappropriate control signal applied to the RESET input to memory 152.

In operation, the external controller 14 may activate card reader 110for reading a card by applying a clock signal on line 141 and a presetcommand signal on line 142. In response to the preset command signal,scan control 162 generates control signals which set the up-counter 156to the count 1 state, load the memory 152 to a predetermined state (e.g.binary "1's" at all locations), and reset the registers in status signalgenerator 164.

The card reader 110 is in a "NO CARD" state until a card 112 is insertedinto reader 110 so that the leading edge passes the sensor element 139of array 132C. At this time, scan control 162 determines the orientationof card 112 (from the control signals on the NO CARD and row M+40,column 12 lines). If the signal on the NO CARD line indicates that lightis incident on the sensor of pair 138, and the signal from the row M+40,column 12 line indicates that no light is incident on the sensor of pair139 (i.e., the row M+40, column 12 pair), then following the passage ofthe leading edge of card 112 beyond the group 1 sensor of array 134,scanner 162 maintains the card reader 110 in its operative state untilthe card is removed (whereupon reader 110 returns to the NO CARD state).Otherwise, scan control sets the wrong side register of generator 164 toprovide a WRONG SIDE signal on line 149B and no reading operation occursfor the currently inserted card.

For a correctly oriented card, as the leading edge passes the group 1sensor of array 134, the group 1 line provides a binary 1 signal to themultiplexer 154. Since the up-counter 156 is in the count 1 state (asindicated above), the binary 1 on the group 1 input line to multiplexer154 is transferred to the group detect line 154A and applied to scancontrol 162. This condition indicates to scan control 162 that the rowsM, M+20, M+40, M+60 (where M equals 1, the count state of up-counter156), of the data matrix 120 on the card 112 are aligned with thecorresponding ones of the column data detection arrays 132A-D. At thistime, a scan cycle is initiated by scan control 162.

In the scan cycle, the scan control 162 successively provides lineselect signals on the M, M+20, M+40 and M+60 lines to the column detectmultiplexer 158. In response to each line select signal, multiplexer 158transfers the data in parallel from the 12 detector elements of thecorresponding one of arrays 132A-D to the column 1-12 detect lines andthereupon to data decoder 159 and to the data input of memory 152. Insynchronism with these line select input signals to multiplexer 158, thescan control 162 generates a corresponding sequence of address controlsignals to the address select input of memory 152 and also, a writecommand signal to the write input of memory 152. As a result, the datawords from the Mth, M+20th, M+40th, and M+60th rows of matrix 120 aredetected and stored in the corresponding locations of memory 152.

Following the write operation thereby initiated, scan control 162increments the up-counter 156 to its next state, i.e. the count 2 state.Accordingly, the data input on the group 2 line to the multiplexer 154is applied via the group detect line 154A to scan control 162. As thecard 112 is inserted further into the card reader so that the leadingedge intercepts the light passing from the group 2 source to the group 2sensor, a corresponding signal is thereby applied via group detect line154A to scan control 162. In response thereto, the above-describedinterrogation and write operation of the column data detection arrays132A-D is initiated for the rows 2, 22, 42, and 62 (i.e. for M = 2, rowsM, M+20, M+40 and M+60) of the data matrix 120 of the card 112. As thecard 112 is inserted further into the card reader, these operations arerepeated for each of the groups 3 through 20 as the leading edge passesthe corresponding group detection sensor of array 134.

Following the detection of the row 80 data of card 112, scan control 162sets the data ready register of status signal generator 164 to provide aDATA READY signal on line 149A.

If the scan control 162 determines from the NO CARD line that the card112 has been removed before the leading edge reaches the group 20source/sensor pair (i.e. before counter 156 reaches the count state 20),then control 162 sets the prepulled register of generator 164 to providea PREPULLED signal on line 149C.

Following the application of DATA READY signal on line 149A, thecontroller 14 may generate a transmit command signal on line 143. Inresponse thereto, control 162 applies a control signal to the READ inputof memory 152 to readout the contents of memory 152 on line 147. Thislatter operation may be performed as a sequence of 80 words on 12parallel output lines (line 47) in the case where the memory 152 storesthe data read from the card 112 in the form of a 12 × 80 bit datamatrix.

It will be understood that the above-described embodiment for reading 12× 80 bit data matrix on Hollerith encoded cards is merely exemplary andthat other source/sensor arrangements may be utilized in keeping withthe present invention. For example, the column data arrays may take theform of two 12 bit linear arrays spaced by the distance 40×D, with thegroup data detection array comprising a 40 element data detection arrayhaving elements spacing equal to D. In such a configuration, the numberof detection elements, including the NO CARD pair, is equal to 65, ascompared with the number 69 required for the configuration shown in FIG.6.

However, the configuration of FIG. 6 provides an additional advantageover the latter alternative embodiment when utilized in a card readerfor paper or "IBM type" cards. Using paper cards with the configurationof FIG. 6, the card is approximately 3/4 of the way into the card reader110 before the first rows of data are sensed by the column datadetection arrays. Consequently, the guide means 128 and 129 provide amore accurate alignment function than compared with the alternativeembodiment having two 12 bit column data detection arrays since, in thatcase, the card is only approximately halfway into the card reader beforethe first reading takes place.

In a case where the cards-to-be-read are plastic or some other rigidmaterial in which there would be no problem of the bending of thatmaterial so as to cause an error in the reading, the alternative systemwith the two 12 bit column data array and 40 bit group data detectionarray may provide an advantageous system for card reading, in that fewerdetection elements are required.

As a further alternative, a three 12 bit linear column data detectionarray with a 27 element group data detection array may be used toprovide a card reading system having 64 source/sensor pairs (countingthe NO CARD pair). However, any of these embodiments described aboveprovide a substantial advantage in comparison with the card readersknown in the art which presently provide at least 960 source/sensorpairs for detecting the presence or absence of data at each bit locationin the data matrix of the card-to-be-read.

I claim:
 1. Apparatus for reading the information stored on a card in aplurality of information positions forming a data matrix, said matrixhaving M rows by N columns with each information position beingcharacterized by one of two states representing a binary zero or abinary 1, comprising,guide means for accepting a manually inserted cardand guiding said card in a first direction along a predetermined path assaid card is inserted in said guide means at an arbitrary speed, a firstlinear array of data detection elements extending in said firstdirection and positioned adjacent to said guide means, said elementsbeing spaced apart .[.in a fixed relation to.]. .Iadd.by the samedistance as .Iaddend.the spacing between rows of information positionson said card, the number of said data detection elements being less thanM, a second array of data detection elements having N columns comprisingat least two spaced apart rows, each of said rows extending in adirection perpendicular to said first direction, said second array beingpositioned to underlie said matrix of information positions when saidcard is passed in a first direction along said guide means, said rows ofdetection elements being spaced apart in said first direction by adistance related to the spacing between said rows of informationpositions on said cards, and circuit means coupled to the elements ofsaid first and second arrays and providing, as the leading edge of acard passes over each detection element in said first array at saidarbitrary speed, that the detection elements of said second array areread out to provide output signals indicating the binary value of eachinformation position for predetermined ones of the rows of said datamatrix on said card overlying said second array.
 2. Apparatus inaccordance with claim 1 wherein the product of the number of datadetection elements in said first array and the number of rows in saidsecond array equals or is greater than M.
 3. Apparatus in accordancewith claim 1 wherein said rows of detection elements in said secondarray are spaced apart by a distance equal to the spacing between rowsof information positions in said data matrix multiplied by the ratio ofM to the number of rows in said second array.
 4. Apparatus in accordancewith claim 1 wherein M = 80, N = 12, the number of detection elements insaid first array equals 20 and the number of rows in said second arrayequals
 4. 5. Apparatus in accordance with claim 1 wherein said cardincludes a further information position outside said data matrix andwherein said apparatus includesa further data detection elementpositioned to underlie said further information position when theleading edge of said card overlies a predetermined detection element ofone of said arrays when said card is inserted in a predeterminedorientation, and circuit means providing a WRONG SIDE signal when theleading edge of said card overlies said predetermined detection element,and said further information position on said card fails to overlie saidfurther data detection element.
 6. Apparatus in accordance with claim 1wherein said circuit means further includes row identification means forgenerating a signal for identifying times during the insertion of a cardin said guide means when a previously unread group of rows of said datamatrix overlies the detection elements of said second array. 7.Apparatus in accordance with claim 6 wherein said circuit means includesa first counter which is preset to a predetermined count state when nocard is entered on said guide means and which is decremented from saidpredetermined count state by increments of one as the leading edge ofsaid card passes over each of the data detection elements at said firstarray in one direction, and means responsive to each change of countstate of said counter for sampling said data detection elements of saidsecond array.
 8. Apparatus in accordance with claim 1 wherein saidcircuit means includes a memory means having an addressed locationassociated with each of said N columns of said data matrix, and whereinsaid circuit means provides a sequence of signals to said memory foreach information position of said data matrix at which a binary 1 isdetected by the elements of said second array, each of said sequence ofsignals being stored at the specific address location within said memorycorresponding to the column of said detected binary 1, such that afterone of said cards has been fully passed along said guide means in saidfirst direction with each of said rows of said data matrix having passedover at least one row of said array of column data detection elements,data signals representative of the binary state of each informationposition in said N column by M row data matrix is stored in saidassociated addressed location in said memory.
 9. Apparatus in accordancewith claim 8 wherein said circuit means further includes rowidentification means for generating a signal for identifying timesduring the insertion of a card in said guide means when a previouslyunread group of rows of said data matrix overlies the detection elementsof said second array.
 10. Apparatus in accordance with claim 9 whereinsaid circuit means includes a first counter which is preset to apredetermined count state when no card is entered on said guide meansand which is decremented from said predetermined count state byincrements of one as the leading edge of said card passes over each ofsaid rows of data detection elements in one direction, and meansresponsive to each change of count state of said counter for samplingsaid column data detection elements.
 11. Apparatus in accordance withclaim 1 wherein said circuit means includes:A. a decoding means, saiddecoding means being successively responsive to each of said rows ofdetection elements in said second array to generate a sequence ofdecoded signals, each sequence being representative of the informationstored at the positions of said data matrix overlying one of said rowsof said second array when the leading edge of a card passes over adetection element in said first array, and B. a memory means for storingeach of said decoded signals, said memory means having an addressedlocation associated with each of said N rows of said data matrix, suchthat after one of said cards has been fully passed along said guidemeans in said first direction with each of said rows of said data matrixhaving passed over at least one row of said second array, a data signalrepresentative of the information stored at each row of positions ofsaid data matrix is stored in said associated location in said memory.12. Apparatus in accordance with claim 11 wherein said circuit meansfurther includes row identification means for generating a signal foridentifying times during the insertion of a card in said guide meanswhen a previously unread group of rows of said data matrix overlies thedetection elements of said second array.
 13. Apparatus in accordancewith claim 12 wherein said circuit means includes a first counter whichis preset to a predetermined count state when no card is entered on saidguide means which is decremented from said predetermined count state byincrements of one as the leading edge of said card passes over each ofsaid rows of data detection elements in one direction, and meansresponsive to each change of count state of said counter for samplingsaid column data detection elements.
 14. Apparatus in accordance withclaim 1 and further including circuit means for detecting when a card ispresent in said guide means, for accumulating the total number of thedata detection elements in said first array which have detected theleading edge of said card, and for providing a PREPULLED signal wheneversaid number fails to equal the total number of elements of said firstarray before said card is removed from said guide means.
 15. In anapparatus for reading the information stored on a card in a plurality ofinformation positions forming a data matrix, said matrix having M rowsby N columns with each information position being characterized by oneof two states representing a binary zero or a binary 1, said apparatusincluding:A. guide means for accepting a manually inserted card andguiding said card in a first direction along a predetermined path assaid card is inserted in said guide means at an arbitrary speed, B. afirst linear array of M row data detection elements extending in saidfirst direction and positioned adjacent to said guide means for sensingthe leading edge of said card as it is carried along said guide means insaid first direction, and wherein the spacing of said row data detectionelements is related to the spacing of the rows in said data matrix, C. asecond linear array of N column data detection elements perpendicular tosaid first array and positioned with respect to said guide means so thateach of said column data detection elements detects the state of thecorrespondingly located information positioned in a row of said datamatrix on said card as said row passes over said second array, D.circuit means coupled to said first and second arrays and providing, asthe leading edge of a card passes over each detection element in saidfirst array at said arbitrary speed, that the detection elements of saidsecond array are read out to provide output signals indicating for eachcolumn of said data matrix on said card the binary value for eachinformation position in the related row of said data matrix, theimprovement comprising:a memory means having an addressed locationassociated with each of said N columns of said data matrix, and whereinsaid circuit means provides a sequence of signals to said memory foreach information position of said data matrix at which a binary 1 isdetected by the elements of said second array, each of said sequence ofsignals being stored at the specific address location within said memorycorresponding to the column of said detected binary 1, such that afterone of said cards has been fully passed along said guide means in saidfirst direction with each of said rows of said data matrix having passedover said array of column data detection elements, data signalsrepresentative of the binary state of each information position in saidN column by M row data matrix is stored in said associated addressedlocation in said memory.
 16. Apparatus in accordance with claim 15 andfurther including circuit means for detecting when a card is present insaid guide means, for accumulating the total number of said row datadetection elements which detect the leading edge of said card and forproviding a PREPULLED signal whenever said number fails to total Mbefore said card is removed from said guide means.
 17. Apparatus inaccordance with claim 15 wherein said circuit means further includes rowidentification means for generating a signal for identifying timesduring the insertion of a card in said guide means when a previouslyunread row of said data matrix overlies the detection elements of saidsecond array.
 18. Apparatus in accordance with claim 17 wherein saidcircuit means includes a first counter which is preset to apredetermined count state when no card is entered in said guide meansand which is decremented from said predetermined count state byincrements of one as the leading edge of said card passes over each ofsaid rows of data detection elements in one direction, and meansresponsive to each change of count state of said counter for samplingsaid column data detection elements.
 19. Apparatus according to claim 15wherein said card includes a further information position outside saiddata matrix positioned to overlie a first specific one of said row datadetection elements when said card is entered along said guide means, andthe leading end of said card overlies a second specific one of said rowdata detection elements and a specific row of said data matrix overliessaid array of column data detection elements, and said circuit meansprovides a WRONG SIDE signal when the leading edge of said card overliessaid second specific one of said row data detection elements, and saidfurther information position fails to overlie said first specific one ofsaid row data detection elements.
 20. In an apparatus for reading theinformation stored on a card in a plurality of information positionsforming a data matrix, said matrix having M rows by N columns with eachinformation position being characterized by one of two statesrepresenting a binary zero or a binary 1, said apparatus including:A.guide means for accepting a manually inserted card and guiding said cardin a first direction along a predetermined path as said card is insertedin said guide means at an arbitrary speed, B. a first linear array of Mrow data detection elements extending in said first direction andpositioned adjacent to said guide means for sensing the leading edge ofsaid card as it is carried along said guide means in said firstdirection, and wherein the spacing of said row data detection elementsis related to the spacing of the rows in said data matrix, C. a secondlinear array of N column data detection elements perpendicular to saidfirst array and positioned with respect to said guide means so that eachof said column data detection elements detects the state of thecorrespondingly located information positioned in a row of said datamatrix on said card as said row passes over said second array, D.circuit means coupled to said first and second arrays and providing, asthe leading edge of a card passes over each detection element in saidfirst array at said arbitrary speed, that the detection elements of saidsecond array are read out to provide output signals indicating for eachcolumn of said data matrix on said card the binary value for eachinformation position in the related row of said data matrix, theimprovement comprising:i. a decoding means, said decoding means beingsuccessively responsive to each of said rows of detection elements insaid second array to generate a sequence of decoded signals, eachsequence being representative of the information stored at the positionsof said data matrix overlying said second array when the leading edge ofa card passes over a detection element in said first array, and ii. amemory means for storing each of said decoded signals, said memory meanshaving an addressed location associated with each of said N rows of saiddata matrix, such that after one of said cards has been fully passedalong said guide means in said first direction with each of said rows ofsaid data matrix having passed over said second array, a data signalrepresentative of the information stored at each row of positions ofsaid data matrix is stored in said associated location in said memory.21. Apparatus in accordance with claim 20 wherein said circuit meansfurther includes row identification means for generating a signal foridentifying times during the insertion of a card in said guide meanswhen a previously unread row of said data matrix overlies the detectionelements of said second array.
 22. Apparatus in accordance with claim 21wherein said circuit means includes a first counter which is preset to apredetermined count state when no card is entered on said guide meansand which is decremented from said predetermined count state byincrements of one as the leading edge of said card passes over each ofsaid rows of data detection elements in one direction, and meansresponsive to each change of count state of said counter for samplingsaid column data detection elements.
 23. Apparatus in accordance withclaim 20 and further including circuit means for detecting when a cardis present in said guide means, for accumulating the total number ofsaid row data detection elements which detect the leading edge of saidcard and for providing a PREPULLED signal whenever said number fails tototal M before said card is removed from said guide means.
 24. Apparatusaccording to claim 20 wherein said card includes a further informationposition outside said data matrix positioned to overlie a first specificone of said row data detection elements when said card is entered alongsaid guide means, and the leading end of said card overlies a secondspecific one of said row data detection elements and a specific row ofsaid data matrix overlies said array of column data detection elements,and said circuit means provides a WRONG SIDE signal when the leadingedge of said card overlies said second specific one of said row datadetection elements, and said further information position fails tooverlie said first specific one of said row data detection elements.